package cn.funeralobjects.upms.service;

import cn.funeralobjects.common.service.CommonCloudCrudService;
import cn.funeralobjects.upms.BasicInfo;
import cn.funeralobjects.upms.entity.ECustomPath;
import cn.funeralobjects.upms.model.CustomPath;

import java.util.Optional;

/**
 * Service Of CustomPath
 *
 * @author FuneralObjects
 * Create date: 2020/5/27 4:17 PM
 */
public interface CustomPathService extends CommonCloudCrudService<CustomPath, ECustomPath, Integer> {

    String ENTITY_NAME = "CustomPath";

    /**
     * 同一scope下是否存在同名
     *
     * @param scope scope
     * @param name  名称
     * @return true - 存在
     */
    boolean existsByNameInScope(String scope, String name);

    /**
     * 同一scope下是否存在同名
     *
     * @param scope     scope
     * @param name      名称
     * @param withoutId 排除id
     * @return true - 存在
     */
    boolean existsByNameInScope(String scope, String name, Integer withoutId);

    /**
     * 查询实体
     *
     * @param scope scope
     * @param name  名
     * @return 实体
     */
    Optional<ECustomPath> findOneByNameInScope(String scope, String name);

    /**
     * 移除关联关系
     *
     * @param roleId 角色id
     * @param id     主键Id
     */
    void removeRoleFromCustomPath(Integer roleId, Integer id);

    /**
     * getName
     *
     * @return name
     */
    @Override
    default String getName() {
        return ENTITY_NAME;
    }

    /**
     * getModuleName
     *
     * @return moduleName
     */
    @Override
    default String getModuleName() {
        return BasicInfo.MODULE;
    }
}
